/**
 * Copyright (c) 时间, Tal.Ben 袁东昊 (ydonghao2@gmail.com).
 *
 * 版权
 */
package com.talben.soudian.ui;

import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;

import com.talben.soudian.AppManager;
import com.talben.soudian.R;
import com.talben.soudian.TDevice;
import com.talben.soudian.base.ICallbackResult;
import com.talben.soudian.bean.SimpleBackPage;
import com.talben.soudian.service.DownloadService;
import com.talben.soudian.service.DownloadService.DownloadBinder;
import com.talben.soudian.ui.dialog.CommonDialog;

/**
 * @Title: UIHelper.java
 * @Package com.talben.soudian.ui
 * @Description: 界面管理类。
 * @author Tal.Ben
 * @date 2015年5月21日 下午11:51:51
 * @version v1.0
 */
public class UIHelper {
	/**
     * 发送App异常崩溃报告
     * 
     * @param cont
     * @param crashReport
     */
    public static void sendAppCrashReport(final Context context,
            final String crashReport) {
        CommonDialog dialog = new CommonDialog(context);

        dialog.setTitle(R.string.app_error);
        dialog.setMessage(R.string.app_error_message);
        dialog.setPositiveButton(R.string.submit_report,
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        // 发送异常报告
                        TDevice.sendEmail(context, "搜点手机助手客户端耍脾气 - 症状诊断报告",
                                crashReport, "ydonghao2@gmail.com");
                        // 退出
                        AppManager.getAppManager().AppExit(context);
                    }
                });
        dialog.setNegativeButton(R.string.cancel,
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        // 退出
                        AppManager.getAppManager().AppExit(context);
                    }
                });
        dialog.show();
    }
    
    public static void sendAppCrashReport(final Context context) {
        CommonDialog dialog = new CommonDialog(context);
        dialog.setTitle(R.string.app_error);
        dialog.setMessage(R.string.app_error_message);
        dialog.setNegativeButton(R.string.ok,
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        System.exit(-1);
                    }
                });
        dialog.show();
    }
    
    /**
     * 发送通知广播
     * 
     * @param context
     * @param notice
     */
//    public static void sendBroadCast(Context context) {
//        if (!((AppContext) context.getApplicationContext()).isLogin())
//            return;
//        Intent intent = new Intent(Constants.INTENT_ACTION_NOTICE);
//        Bundle bundle = new Bundle();
//        bundle.putSerializable("notice_bean", notice);
//        intent.putExtras(bundle);
//        context.sendBroadcast(intent);
//    }

    /**
     * 发送通知广播
     * 
     * @param context
     */
//    public static void sendBroadcastForNotice(Context context) {
//        Intent intent = new Intent(NoticeService.INTENT_ACTION_BROADCAST);
//        context.sendBroadcast(intent);
//    }
    
    public static void gotoStartPage(Context context){
    	context.startActivity(new Intent(context, AppStartActivity.class));
    }
    
    /**
     * @Title: gotoLoginPage
     * @Description: 去到登陆界面
     * @param     设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoLoginPage(Context context){
    	context.startActivity(new Intent(context, LoginActivity.class));
    }
    
    /**
     * @Title: gotoRegisterPage
     * @Description: 去到注册界面
     * @param     设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoRegisterPage(Context context){
    	context.startActivity(new Intent(context, RegisterAcivity.class));
    }
    
    /**
     * @Title: gotoMainPage
     * @Description: 跳转到主界面
     * @param @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoMainPage(Context context){
    	context.startActivity(new Intent(context, MainActivity.class));
    }
    
    /**
     * @Title: gotoForgetPwd
     * @Description: 去到忘记密码界面
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoForgetPwd(Context context){
    	context.startActivity(new Intent(context, ForgetPasswordActivity.class));
    }
    
    /**
     * 显示用户中心页面
     * 
     * @param context
     * @param uid
     * @param hisuid
     * @param hisname
     */
    public static void showUserCenter(Context context, int hisuid,
            String hisname) {
//        if (hisuid == 0 && hisname.equalsIgnoreCase("匿名")) {
//            AppContext.showToast("提醒你，该用户为非会员");
//            return;
//        }
//        Bundle args = new Bundle();
//        args.putInt("his_id", hisuid);
//        args.putString("his_name", hisname);
    }
    
    /**
     * @Title: gotoFollowing
     * @Description: 徒弟界面
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoFollowing(Context context){
    	
    }
    
    /**
     * @Title: gotoFollower
     * @Description: 师傅界面
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoFollower(Context context){
    	
    }
    
    /**
     * @Title: gotoScorePage
     * @Description: 分数界面
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoScorePage(Context context){
    	
    }
    
    /**
     * @Title: gotoCoinPage
     * @Description: 金币界面
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoCoinPage(Context context){
    	
    }
    
    /**
     * @Title: gotoChangeUserInformation
     * @Description: 修改用户消息
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
//    public static void gotoChangeUserInformation(Intent intent,Context context){
//    	context.startActivity(intent);
//    }
    
    /**
     * @Title: gotoUserMessage
     * @Description: 修改用户消息
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoUserMessage(Context context){
    	context.startActivity(new Intent(context, ChangeUserActivity.class));
    }
    
    /**
     * @Title: gotoMasterPage
     * @Description: 获取师徒消息
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoMasterPage(Context context){
    	
    }
    
    /**
     * @Title: gotoWhyMasterPage
     * @Description: 去到为什么收徒界面
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoWhyMasterPage(Context context){
    	context.startActivity(new Intent(context, WhyMasterActivity.class));
    }
    
    /**
     * @Title: gotoSettingPage
     * @Description: 设置消息界面
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoSettingPage(Context context){
    	
    }
    
    /**
     * @Title: gotoAboutUs
     * @Description: 关于我们界面
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoAboutUs(Context context){
    	context.startActivity(new Intent(context, AboutUsActivity.class));
    }
    
    /**
     * @Title: gotoScoreRules
     * @Description: 积分规则界面
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoScoreRules(Context context){
    	context.startActivity(new Intent(context, ScoreRulesActivity.class));
    }
    
    /**
     * @Title: openDownLoadService
     * @Description: 下载服务
     * @param context
     * @param downurl
     * @param tilte    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void openDownLoadService(Context context, String downurl,
            String tilte) {
        final ICallbackResult callback = new ICallbackResult() {

            @Override
            public void OnBackResult(Object s) {}
        };
        ServiceConnection conn = new ServiceConnection() {

            @Override
            public void onServiceDisconnected(ComponentName name) {}

            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                DownloadBinder binder = (DownloadBinder) service;
                binder.addCallback(callback);
                binder.start();

            }
        };
        Intent intent = new Intent(context, DownloadService.class);
        intent.putExtra(DownloadService.BUNDLE_KEY_DOWNLOAD_URL, downurl);
        intent.putExtra(DownloadService.BUNDLE_KEY_TITLE, tilte);
        context.startService(intent);
        context.bindService(intent, conn, Context.BIND_AUTO_CREATE);
    }
    
    
    /**
     * @Title: showSimpleBack
     * @Description: 简单返回界面
     * @param context
     * @param page    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void showSimpleBack(Context context, SimpleBackPage page) {
        Intent intent = new Intent(context, SimpleBackActivity.class);
        intent.putExtra(SimpleBackActivity.BUNDLE_KEY_PAGE, page.getValue());
        context.startActivity(intent);
    }
    
    
    /**
     * @Title: showSimpleBack
     * @Description: TODO(这里用一句话描述这个方法的作用)
     * @param context
     * @param page
     * @param position    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void showApkList(Context context, int position) {
        Intent intent = new Intent(context, ApkListActivity.class);
        intent.putExtra("position", position);
        context.startActivity(intent);
    }
    
    /**
     * @Title: gotoCooperation
     * @Description: TODO(这里用一句话描述这个方法的作用)
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoCooperation(Context context){
    	Intent intent = new Intent(context, CooperationActivity.class);
        context.startActivity(intent);
    }
    
    /**
     * @Title: gotoInnerWeb
     * @Description: 去内网
     * @param context    设定文件
     * @return void    返回类型
     * @throws
     */
    public static void gotoInnerWeb(Context context) {
    	Intent intent = new Intent(context, ShowWebActivity.class);
    	Bundle bundle = new Bundle();
        bundle.putString("title", "WiFi登录");
        bundle.putString("showUrl", "http://10.10.1.1/");
        intent.putExtras(bundle);
        context.startActivity(intent);
    }
}

